package cn.tedu.net.collection.generic;

import java.util.*;

//本类用于测试list接口
public class Test4_List {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        //测试继承Collection接口中的方法
        list.add("大娃");
        list.add("二娃");
        list.add("三娃");
        list.add("四娃");
        list.add("五娃");
        list.add("六娃");
        list.add("七娃");
        System.out.println(list);
        System.out.println(list.contains("蝎子精"));//是否包含
        System.out.println(list.equals("大娃"));
        System.out.println(list.hashCode());
        System.out.println(list.isEmpty());
        System.out.println(list.size());
        System.out.println(list.remove(0));
        System.out.println(list);
        System.out.println(Arrays.toString(list.toArray()));
        //测试list接口中的特有方法都是可以用索引来操作的方式
        list.add("爷爷");
        System.out.println(list);
        list.add(0,"小蝴蝶");
        System.out.println(list);
        System.out.println(list.get(2));
        list.add(2,"小蝴蝶");//可以重复添加
        System.out.println(list);
        System.out.println(list.indexOf("小蝴蝶"));
        System.out.println(list.lastIndexOf("小蝴蝶"));
        System.out.println(list);
        System.out.println(list.set(2,"蛇精"));//修改指定位置的元素
        System.out.println(list);
        System.out.println(list.subList(1,3));//含头不含尾,不改变原集合
        System.out.println(list);
        //addAll   添加集合   containsAll 含集合   removeAll 删除集合
        /*集合迭代的方式:
        * 1.for循环
        * 2.高效for循环
        * 3.iterator
        * 4.listIterator
        * */
        //方式一:由于List集合是有下标的,所以可以根据下标进行遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.print(list.get(i)+" ");
        }
        System.out.println();
        //方式二:高效for循环
        for (String s : list) {
            System.out.print(s+" ");
        }
        System.out.println();
        //方式三:iterator  获取继承来自Colletion的,属于此集合的迭代器
        Iterator<String> it=list.iterator();
        //不清楚有多少元素,写While循环
        while (it.hasNext()){
            System.out.print(it.next()+" ");//获取对应的元素
        }
        //方式四:listIterator  测试自己的迭代器
        ListIterator<String> it2=list.listIterator();
        while (it2.hasNext()){
            System.out.println(it2.next()+" ");
        }
    }
}
